xen: rtds: only tickle non-already tickled CPUs
authorMeng Xu <mengxu@cis.upenn.edu>
Thu, 3 Aug 2017 02:13:52 +0000 (22:13 -0400)
committerGeorge Dunlap <george.dunlap@citrix.com>
Tue, 29 Aug 2017 13:40:55 +0000 (14:40 +0100)
commitde8b2f49d724ec56f61cebd9fc193c3607a0c83a
treea0bb5243b395acde5f8e4156f7ff29d0aedd5972
parent6657e938bf769768b56ba0c86cd4775b010538a8
xen: rtds: only tickle non-already tickled CPUs

When more than one idle VCPUs that have the same PCPU as their
previous running core invoke runq_tickle(), they will tickle the same
PCPU. The tickled PCPU will only pick at most one VCPU, i.e., the
highest-priority one, to execute. The other VCPUs will not be
scheduled for a period, even when there is an idle core, making these
VCPUs unnecessarily starve for one period.

Therefore, always make sure that we only tickle PCPUs that have not
been tickled already.

Signed-off-by: Haoran Li <naroahlee@gmail.com>
Signed-off-by: Meng Xu <mengxu@cis.upenn.edu>
Reviewed-by: Dario Faggioli <dario.faggioli@citrix.com>
xen/common/sched_rt.c